import { CommentHeader } from "@/model/common-header.model";
import { CurrentMusic } from "@/model/current-music.model";
import { CommentType, CommonIdType, PlayModel } from "@/model/id-or-enum.model";
import { MusicInfo } from "@/model/music-info.model";
import { CurrentTimeInfo, FullTimeInfo } from "@/model/playing-info.model";
import { LoginResponse } from "@/model/response-type.model";

export interface AppState {
  userInfo: Partial<LoginResponse>;
  /**
   * 用于完成登录后知道跳转到哪个页面
   */
  prevPath: string;
  /**
   * 音乐列表
   */
  musicUrlList: MusicInfo[];
  /**
   * 歌曲是否正在播放（没被暂停）
   */
  isPlaying: boolean;
  /**
   * 是否显示播放器
   */
  isController: boolean;
  /**
   * 是否显示登陆弹框
   */
  loginDialogVisible: boolean;
  /**
   * 当前歌曲信息：id、url、图片等
   */
  nowMusic: CurrentMusic;
  /**
   * 当前歌曲总时长信息
   */
  full: FullTimeInfo;
  /**
   * 当前歌曲进度信息（播放到几分几秒，百分之几）
   */
  current: CurrentTimeInfo;
  /**
   * 当前mv的id
   */
  mvId: CommonIdType;
  /**
   * 歌曲的详细信息
   */
  moreMsg: MusicInfo;
  /**
   * 播放模式, 0代表列表顺序播放，1随机播放，2单曲循环
   */
  playModel: PlayModel;
  /**
   * 存储comment页面的来源, 0代表音乐，1代表歌单，2代表专辑，3代表mv
   */
  commentType: CommentType;
  /**
   * 存储评论页面头部信息，如评论对象（歌曲、专辑、歌单）的名字、图片、歌手等。
   */
  commentHeader: CommentHeader;
}
